package com.cdut.cn.boke.controller;

import com.cdut.cn.boke.pojo.ExceptionCodeMsgEnum;
import com.cdut.cn.boke.pojo.ResponseData;
import com.cdut.cn.boke.pojo.ServiceException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//@Controller 和 @ResponseBody 将返回值以json字符串返回而不是html页面
@RequestMapping("/")
/**
 * 测试全局异常处理
 */
public class IndexController {
    /**
     *请求路径/exception
     */
    @GetMapping("/exception")
    public ResponseData testException(String error){//get请求获取error参数的值
        //模拟请求成功，就构造一个成功的ResponseData返回
        if("ok".equals(error)){
            return ResponseData.sucecss("successful");//统一返回值ResponseData，返回成功并携带消息successful
        }

        // 模拟请求导致了服务发生了我们自定义的异常
        if("err".equals(error)){
            /**
             * ExceptionCodeMsgEnum.CONTENT_NOT_EXIST.getCode() :自定义异常枚举为 10001 请求内容不存在
             * ServiceException自定义异常类
             */
            throw new ServiceException(ExceptionCodeMsgEnum.CONTENT_NOT_EXIST.getCode(),ExceptionCodeMsgEnum.CONTENT_NOT_EXIST.getMessage());
        }

        if("0".equals(error)){
            int i = 1/0;//算数异常，被全局异常处理器捕获并返回数据
        }
        return ResponseData.sucecss("request success");//请求成功返回request success
    }
}
